package com.imu.purse.modules.trade.service;

import com.imu.purse.modules.bitcoin.form.BitcoinForm;
import com.imu.purse.modules.bitcoin.form.YtfcoinForm;
import com.imu.purse.modules.trade.entity.TradeInfoEntity;
import com.imu.purse.modules.trade.form.TransForm;

import java.util.List;

/**
 * 交易明细
 * @author sunhongwei
 * @email sunhongwei@jshijian.com
 * @date 2018-03-22 10:33:20
 * Copyright (c) 2017 武汉极时间科技有限公司 版权所有 
 * Jshijian aloha CO.,LTD. All Rights Reserved. 
 */
public interface TradeInfoService
{
	/****
	 * 插入交易明细
	 * @param tradeInfo
 	 * @date 2018-03-22 10:33:20
	 * @return
	 */
    int save(final TradeInfoEntity tradeInfo);
    
    /****
	 * 删除交易明细
	 * @param ids
 	 * @date 2018-03-22 10:33:20
	 * @return
	 */
    boolean delete(final String ...ids);
    
    /****
	 * 修改交易明细
	 * @param tradeInfo
 	 * @date 2018-03-22 10:33:20
	 * @return
	 */
    int update(final TradeInfoEntity tradeInfo);
    
     /****
	 * 插入或跟新交易明细
	 * @param tradeInfo
 	 * @date 2018-03-22 10:33:20
	 * @return
	 */
    int saveUpdate(final TradeInfoEntity tradeInfo);
    
    /****
	 * 根据ID查询交易明细
	 * @param id
 	 * @date 2018-03-22 10:33:20
	 * @return
	 */
    TradeInfoEntity findById(final Long id);
    
    /****
   	 * 分页查询交易明细
	 * @param tradeInfo
 	 * @date 2018-03-22 10:33:20
   	 * @return
   	 */
    List<TradeInfoEntity> queryList(final TradeInfoEntity tradeInfo);

    /**
     * 转账
     * @param form
     */
    void transferData(TransForm form);
    
    /**
     * 修改来自bitcoin的数据
     * @param fList
     */
    void modBitData(List<BitcoinForm> fList);
    
    /****
   	 * 分页查询交易明细
	 * @param tradeInfo
 	 * @date 2018-03-22 10:33:20
   	 * @return
   	 */
    List<TradeInfoEntity> queryLists(final TradeInfoEntity tradeInfo);
    
    /****
     * 分页查询交易明细
   * @param tradeInfo
   * @date 2018-03-22 10:33:20
     * @return
     */
    List<TradeInfoEntity> tradeSummaryList(final TradeInfoEntity tradeInfo);


	/**
	 * 以太坊转入
	 * @param form
	 * @return
	 */
	int modYtfInTranInfo(final YtfcoinForm form);

	/**
	 *  以太坊转出
	 * @param form
	 * @return
	 */
	int modYtfOutTransInfo(final YtfcoinForm form);

	/*
    * 外部转账成功后，增加交易id
    * */
	public int transOutData(final TransForm form);

    /****
   	 * 导出
   	 * @param id
    	 * @date 2018-03-22 10:33:21
   	 * @return
   	 */
	 public void export(javax.servlet.http.HttpServletResponse response, final TradeInfoEntity entity);
}
